pandas timeseries
pandas contains extensive capabilities and features for working with time series data for all domains.
https://pandas.pydata.org/pandas-docs/stable/user_guide/timeseries.html
Tutorials
MetPy Mondays
#86 - Re-sampling, Interpolation, and Frequency Domain Analysis : Unidata Developer's Blog
resample()
interpolate()
matplotlib.pyplot.psd
#mesonet
IEM :: ASOS/AWOS Network
https://mesonet.agron.iastate.edu/ASOS/
#93 - Pandas and Datetime Indexes : Unidata Developer's Blog
#204 - Parsing Incomplete Datetimes : Unidata Developer's Blog
code:python
today="20211026"
df'Time'=today+df'Time'.astype(str)
df'Time'=pd.to_datetime(df'Time',format="%Y%m%d%H%M%S00")
Tips
Datetime to_datetime parsing time
multiple columns to datetime
code:python
df.index=pd.to_datetime(df.year.astype(str)+df.month.astype(str) +df.day.astype(str)+df"hour:min",format="%Y%m%d%H:%M")
Pandasで時間や日付データに変換するto_datetime関数の使い方 - DeepAge
Correcting dates with apply function pandas - Stack Overflow
pandasの日付データから年、月、日、曜日への変換方法 │ On Your Mark . Tokyo
benchmarks/date-parse at master · sanand0/benchmarks · GitHub
converting a year and month table into a pandas Series - Stack Overflow
Set the date column as the index
code:python
pd.read_csv('foo.csv', index_col='date',parse_dates=True)
code:python
read_csv('foo.csv', parse_dates='Date', index_col='Date')
set_index
code:python
df = df.set_index("date")
code:python
df.set_index("date",inplace=True)
Calculating
Calculating daily standard deviation
code:pyhon
import pandas as pd
import numpy as np
# Sample data creation (assuming hourly data over multiple days)
dates = pd.date_range('2023-01-01', periods=72, freq='H')
data = np.random.rand(72) # Replace with your actual data
df = pd.DataFrame(data, index=dates, columns='Value')
# Calculate daily standard deviation
daily_std = df.groupby(pd.Grouper(freq='D')).std()
Compute daily climatology using pandas python
How to get the correlation between two timeseries using Pandas - Stack Overflow
Plot
code:python
ax = df.plot(color='red', figsize=(8, 5), linewidth=1, fontsize=12)
annotate
vertical line
code:python
ax.axvline("1939-01-01", color="red", linestyle='--')
vertical span
code:python
ax.axvspan('2004-07-01', '2005-08-31', color="red", alpha=0.5)
plotting tabels
https://pandas.pydata.org/pandas-docs/stable/user_guide/visualization.html#plotting-tables
color
colormaps argument
https://pandas.pydata.org/pandas-docs/stable/user_guide/visualization.html#colormaps
code:python
df.plot(colormap='cubehelix')
subplots
Subplots
https://pandas.pydata.org/pandas-docs/stable/user_guide/visualization.html#subplots
Using layout and targeting multiple axes
https://pandas.pydata.org/pandas-docs/stable/user_guide/visualization.html#using-layout-and-targeting-multiple-axes
Sea also
matplotlib time series plot
pandas visualization
https://pandas.pydata.org/pandas-docs/stable/user_guide/visualization.html
Time Series analysis